package com.suning.sawp.intf.dao.mainpushnew;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.suning.sawp.vo.mainpushnew.BiAreaTaskProgressVo;
import com.suning.sawp.vo.mainpushnew.BiHqTaskProgressVo;
import com.suning.sawp.vo.mainpushnew.BiModelProgressVo;

/**
 * 
 * 总部主推任务查看dao<br>
 *
 * @author 14060886 祝翔龙
 */
public interface MainPushTaskHqViewDao {

    /**
     * 
     * 功能描述: 查询总部任务完成进度<br>
     *
     * @param hqTaskId
     * @return
     */
    BiHqTaskProgressVo selectHqTaskProgress(Long hqTaskId);

    /**
     * 
     * 功能描述: 查询大区任务完成进度数量<br>
     *
     * @param hqTaskId
     * @param pageParams
     * @return
     */
    Integer countAreaTaskProgress(Long hqTaskId, String queryParam);

    /**
     * 
     * 功能描述: 查询大区任务完成进度<br>
     *
     * @param hqTaskId
     * @param queryParam
     * @return
     */
    List<BiAreaTaskProgressVo> selectAreaTaskProgress(Long hqTaskId, String queryParam, Map<String, Integer> pageParams);

    /**
     * 
     * 功能描述: 查询款数完成进度<br>
     *
     * @param hqTaskId
     * @param disCode
     * @return
     */
    List<BiModelProgressVo> selectModelProgress(Long hqTaskId, String disCode);
    
    /**
     * 
     * 功能描述: 查询品类销售额<br>
     *
     * @param cateCode
     * @param month
     * @param disCode
     * @return
     */
    BigDecimal selectCateSaleAmountByCode(String cateCode, String month, String disCode);
    
    /**
     * 
     * 功能描述: 查询大区任务合计完成进度<br>
     *
     * @param hqTaskId
     * @return
     */
    List<BiAreaTaskProgressVo> selectTotalAreaTaskProgress(Long hqTaskId);
    
    /**
     * 
     * 功能描述: 查询目标台数<br>
     *
     * @param hqTaskId
     * @param disCode
     * @param taskType
     * @return
     */
    Integer selectTargetNumByDisAndType(Long hqTaskId, String disCode, String taskType);
    
    
    /**
     * 
     * 功能描述: 根据月份和品类编码查询品类下所属的商品编码集合<br>
     * 〈功能详细描述〉
     *
     * @param cateCode
     * @param month
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<String> queryCommCdsByCateCode(String cateCode, String month);
}
